<?php
class PC4_Controlador_APP_CRUD_CT extends PC4_Controlador_APP_CRUD {
	
	/**
	 * Cria um array de registro padrão preparado para ser inserido na base de dados
	 * @param array $post
	 * @return array com os campos
	 */
	protected function trataForm($id = 0) {
		$campos = $_POST;
		foreach ($campos as &$campo) {
			$campo = trim($campo);
		}
		return $campos;
	}
	
	/**
	 * Trata os campos do $_POST enviando para o modelo inserir na base de dados
	 */
	public function trataNovo() {
		$procedure = 'proc_insere_' . strtolower($this->router->class);
		$campos = $this->trataForm();
		$retorno = $this->modelo->insere($campos, $procedure);
		$this->resultadoNovo($retorno, $campos);
	}
	
	/**
	 * Recebe o id do registro, trata-o e e em seguida manda o modelo
	 * executar a ação de edição
	 * @param int $id
	 */
	function trataEdita($id, $campo = 'id') {
		$procedure = 'proc_edita_' . strtolower($this->router->class);
		$campos = $this->trataForm($id);
		$erros = $this->modelo->edita($campos, $procedure, $id, $campo);
		$this->resultadoEdita($erros, $campos);
	}
	
	/**
	 * Recebe o id do registro e manda o modelo executar a ação de exclusão
	 * @param int $id
	 */
	function trataApaga($id, $campo = 'id') {
		$procedure = 'proc_apaga_' . strtolower($this->router->class);
		$this->modelo->apaga($procedure, $id, $campo);
		$this->resultadoApaga(true);
	}
	
}